package com.wei.youvie.common;

import com.wei.youvie.exception.ErrorCode;

public class ResultUtils {

    /**
     * 创建一个表示成功的BaseResponse对象。
     *
     * @param <T> 泛型类型，表示返回的数据类型
     * @param data 成功响应中携带的数据
     * @return 返回包含成功信息和数据的BaseResponse对象
     */
    public static <T> BaseResponse<T> success(T data) {
        return new BaseResponse<>(ErrorCode.SUCCESS.getCode(), data, ErrorCode.SUCCESS.getMessage());
    }

    /**
     * 创建一个包含错误信息的响应对象
     *
     * @param errorCode 错误码
     * @return 包含错误信息的响应对象
     */
    public static BaseResponse<?> error(ErrorCode errorCode) {
        return new BaseResponse<>(errorCode);
    }

    /**
     * 创建一个错误响应对象
     *
     * @param code    错误码
     * @param message 错误信息
     * @return 错误响应对象
     */
    public static BaseResponse<?> error(int code, String message) {
        return new BaseResponse<>(code, null, message);
    }

    /**
     * 返回一个带有错误信息的BaseResponse对象
     *
     * @param errorCode 错误代码枚举，表示错误的类型
     * @param message   具体的错误信息
     * @return 返回包含错误信息的BaseResponse对象
     */
    public static BaseResponse<?> error(ErrorCode errorCode, String message) {
        return new BaseResponse<>(errorCode.getCode(), null, message);
    }

}
